package no67;

import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/5/16 15:47
 * 把字符串转换成整数
 * https://leetcode.cn/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
 */
public class Solution {

    public int strToInt(String str) {
        // 边界
        if (str == null || str.isEmpty()) {
            return 0;
        }
        int index = 0, res = 0, sign = 1;
        // 处理前置空格
        while (index < str.length() && str.charAt(index) == ' ') {
            ++index;
        }
        // 处理符号
        if (index < str.length() && (str.charAt(index) == '+' || str.charAt(index) == '-')) {
            sign = str.charAt(index) == '+' ? 1 : -1;
            ++index;
        }
        // 字符串转数字
        while (index < str.length()) {
            if (!('0' <= str.charAt(index) && str.charAt(index) <= '9')) {
                // 如果不是数字, 直接退出
                break;
            }
            // 正常的处理逻辑
            int digit = str.charAt(index) - '0';
            if (res > (Integer.MAX_VALUE - digit) / 10) {
                // 越界
                return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            res = res * 10 + digit;
            ++index;
        }
        return res * sign;
    }

    // 测试
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        int res = new Solution().strToInt(input);
        System.out.println(res);
        scanner.close();
    }
}
